先来看看已有方法通常怎样做。最直观的是横向操作:对各个物理比特分别施门,线路简单,也容易看清错误怎样传播。不过给定一个码,横向能做的逻辑门受到码结构限制,通常不能随意指定。表面码里还常用格点手术,把码片合并、分开,通过测量得到逻辑操作。这条路线很成熟,但会占用辅助区域和测量轮次。还有一类方法善用几何或拓扑对称性,例如在双曲曲面上做 Dehn twist,可以得到某些逻辑 CNOT。
问题是,我们现在希望“只动第一个逻辑比特,把第二个完全留在原位”,几何图形往往不能给出一个直接的动作。换一个码,原来的几何招数也未必能照搬。论文于是把视角从“我能画出什么变形”转到“目标算符在代数上必须满足什么关系”。本文的贡献在于给复杂或非自对偶的 CSS 码提供一种统一的求线路算法,尤其是对单个逻辑比特的 H 和 S 这类难以用几何直觉单独实现的门。
可能提问:Dehn twist 已经能做逻辑门,为什么还需要这篇方法?
参考回答:Dehn twist 很适合一些拓扑操作,文中举的典型对象是逻辑比特之间的 CNOT;要在任意指定比特上单独做 H 或 S,仍缺少同样通用的几何构造。
可能提问:横向 H 为什么不直接解决环面码上的目标?
参考回答:对所有物理比特一起做 H 会交换 Z 稳定子和 X 稳定子,同时影响两个逻辑比特;本文指定只改变第一个,要求更细。
可能提问:格点手术是不是完全做不到这些门?
参考回答:不是。辅助码片和测量方案也能构造逻辑操作;论文关注的是从码的代数数据直接求一条物理门线路。
从这一节起,我会用尽量少的预备知识把问题翻译成可以计算的形式。
可能提问:为什么不直接在量子态向量上寻找目标门?
参考回答:态空间维度随物理比特数指数增长;Clifford 对 Pauli 的作用可用二进制辛矩阵表示,规模是多项式级,更适合本文的系统求解。
稳定子是一组互相对易的 Pauli 算符。若一个物理错误和某个稳定子反对易,测量结果就会翻转,我们读到的翻转组合就是综合征。
CSS 码让这件事更整齐:稳定子分成纯 Z 和纯 X 两类。式子 H_Z 乘 H_X 的转置等于零,说的就是一条 Z 型稳定子与一条 X 型稳定子重叠在偶数个物理比特上。“重叠”可以直接在方格码上数出。后面求逻辑门时,会同时要求稳定子不变、逻辑算符变成目标算符;这一步只有先选好彼此配对正确的逻辑行才能进行。若有人关心为什么逻辑算符不是唯一的,原因是乘上稳定子不会改变它在码空间里的逻辑作用。
稳定子选择也有“基”的自由:换一组独立生成元,定义的稳定子群和码空间可以相同。论文为了让方程明确,固定了具体的生成元行,这会影响最终求得的物理实现,因此比较不同线路时应先确认输入约定。
逻辑算符稍微特别:它和所有稳定子对易,因此不会把状态直接推出码空间;但它又不能只是稳定子的乘积,否则对编码的信息没有新的作用。
注意:文章要分解的是逻辑操作,不是逻辑算符。U 是实现目标逻辑操作的物理 Clifford 操作的辛表示
可能提问:为什么稳定子数目决定逻辑比特数?
参考回答:若有 m 条独立稳定子,每条独立条件把希尔伯特空间维数减半,n 个物理比特留下二的 n 减 m 次方维,也就是 k 等于 n 减 m 个逻辑比特。
可能提问:稳定子群里可以包含负单位算符吗?
参考回答:不能。负单位算符不可能把非零状态固定为正一本征态,码空间会变成空集。
可能提问:同一个逻辑算符的物理 Pauli 链表示唯一吗?
参考回答:不唯一。乘上任意稳定子后,它在码空间中的逻辑作用不变,只是换了一个代表元。
从这里开始统一一下记号。一个 Pauli 链就是很多单比特 I、X、Y、Z 的张量积。直接写完整算符既长又不方便计算,我们把每个位置是否含 Z、是否含 X 分别记成一位,排成前半段 Z、后半段 X 的二进制行向量。暂时忽略整体相位。
下方的辛内积。我们稍后要把稳定子之间的对易、逻辑 X 和逻辑 Z 的配对,以及 Clifford 门必须保持的关系,都用这个同一个计算来表达。
这一表示法让我们避免写庞大的张量积,也让每一条对易检查都变成有限个零一位的乘加运算。
可能提问:Y 为什么写成 Z 位和 X 位都为一?
参考回答:Y 与 ZX 只差一个整体相位,二进制辛表示先忽略这层相位,所以用同一个二位支撑表示。
可能提问:忽略 Pauli 的整体相位会不会丢掉重要信息?
参考回答:在寻找零一支撑映射时可以先忽略;恢复物理门线路后,还要检查正负符号并补必要的 Pauli 修正。
可能提问:辛内积为什么只看奇偶?
参考回答:每遇到一处 X 与 Z 的反对易就贡献一次负号。负号出现偶数次会抵消,奇数次则留下反对易。
U 和 不是同一个符号。大小分别是 2n × 2n、 × 。
可能提问:二进制矩阵完全决定物理 Clifford 门吗?
参考回答:它决定 Pauli 支撑的映射,但还没有记录正负相位。综合线路后要跟踪这些符号,并用合适的 Pauli 修正使稳定子的正一本征空间保持正确。
可能提问:为什么满足保辛条件的 U 一定可逆?
参考回答:它把非退化的辛配对矩阵映回自身,因此不能把非零方向压成零;相应的方阵必须满秩。
可能提问:这套二进制方法能直接找逻辑 T 门吗?
参考回答:不能。T 门不是 Clifford 门,通常要结合魔术态注入等其他机制。
可能提问:只用普通高斯消元是不是也能把 U 化成单位矩阵?
参考回答:形式上能,但普通列操作未必保辛,不能逐步对应合法量子门;本文使用 H、S、CNOT、SWAP 的辛初等操作。
这一页是全文最核心的建模。要求同一个矩阵 U 同时满足三个约束。
第一是保辛,保证它确实是一个 Clifford 操作,不能破坏 Pauli 算符的对易关系。第二是稳定子生成元不变:文章要求每个选定的稳定子生成元都映回自己。这样做比“只要整个稳定子群保持不变”更严格,所以找到的解很可靠,但也可能漏掉那些把稳定子互相置换、重新组合的合法线路。
第三是目标映射:明确告诉程序每个逻辑 Z 和逻辑 X 最后应当变成什么。举个例子,只在第一个逻辑比特上做 H,就让第一对逻辑 Z、X 对调,第二个逻辑比特那一对保持原样;若做 S,则第一对里逻辑 X 会多出一个逻辑 Z 因子。
三条约束放在一起,“设计量子线路”就变成了“找一个满足条件的二进制矩阵”。
上标表示来自于谁,主符号表示分量。例如 X^Z 表示 Z 经过变换之后的 X 分量。
于是"设计线路"变成"求满足保辛条件、码结构与目标映射的 U",解出后再分解成物理门。三条约束具体怎么合成一个线性方程组,见附录 B.1;自由变量的削减与特解见附录 B.2、B.3。
可能提问:为什么不只要求稳定子群整体不变?
参考回答:那样更一般,但需同时考虑生成元的置换和重组,搜索空间会复杂得多;文章为可求解性采用了逐生成元固定的较强条件。
可能提问:怎样在求解前检查目标映射是否合理?
参考回答:先检查目标逻辑 Z、X 之间的对易和反对易关系是否保留,并确认目标仍表示合法逻辑算符。
可能提问:逐个固定稳定子生成元会排除某些更短线路吗?
参考回答:有可能。允许生成元置换或重组的物理门也可能保持整个码,但不满足论文采用的较强等式。
解这个方程要面对的困难,主要是式是二次的。三条约束里,后两条都是线性的。而第一条保辛条件不同,它含有两个 U 元素相乘,直接解二次方程会难很多。
但文章说明了,二次项总以固定的组合出现,并且比线性项少。因此暂时给它单独设变量,先和原来的自由变量一起做线性代数。这样大方程虽然变量变多,但系数矩阵很稀疏,论文给出的规模仍随 n 的平方增长,求解复杂度估计略高于 n 的四次方。
新变量在这一步只是占位符,求出一组线性解并不能宣布成功。还要回过头证明这些占位符真等于对应原变量的乘积。补充材料正是花了很多篇幅处理这个匹配问题,也利用 CSS 结构先把原本四 n 平方个未知元素压缩成与稳定子数有关的自由变量。拿 d 等于七的环面码举例,U 已有一百九十六行一百九十六列,直接枚举每个零一元素完全不现实;利用结构化方程才是这套方法能够运行的原因。
可能提问:线性化后随便解一个线性方程解就行吗?
参考回答:不行。提升变量必须满足原来的乘积定义;补充材料构造特殊线性解,再沿核方向修正,使乘积关系一并成立。
可能提问:引入新变量后,为什么问题仍是可控规模?
参考回答:先用 CSS 的线性约束减少自由位,再只提升方程里出现的四类内积组合,变量数仍按物理比特数的平方增长。
可能提问:最后怎样识别线性化产生的伪解?
参考回答:把提升变量与原变量的乘积逐项匹配,并直接检查求得的 U 是否满足保辛等式。
解出了矩阵 U,但实验设备不会直接执行“一张矩阵”,它只能执行一串物理门。因此下一步是将 U 分解成一系列物理门。只需要通过列操作将 U 消元化为单位矩阵,然后逆序这些列操作,就能得到最终的物理门序列。不过,关键的是由于只能使用物理 Clifford 门,所以只允许四种列操作来完成消元。
H 最容易理解,它在单个比特上交换 Z 和 X,因此在矩阵里交换对应的两列。S 给 X 增添一个 Z 分量;CNOT 同时改变控制和目标相关的 X、Z 支撑,绝不能只改矩阵的一半。SWAP 则把两个物理比特的位置对调,前后两半都要同步交换。
我们采用右乘初等矩阵的记法,所以每一步是在当前 U 的列上做操作。关键限制是,这些操作每一步都要保辛。普通高斯消元可以任意加行加列,但那样中间矩阵未必代表量子门,因而这里必须使用特制的辛消元顺序。若一连串右乘把 U 化成单位矩阵,那么原来的 U 等于这些操作的逆序乘积,也就是最终线路要反向读。
可能提问:为什么 CNOT 的列操作总是成对出现?
参考回答:只改 X 或只改 Z 会破坏对易关系。控制位的 X 传播到目标位,同时目标位的 Z 传播到控制位,这两个变化一起才保持辛内积。
可能提问:设备没有原生 SWAP 门怎么办?
参考回答:可以把一个 SWAP 分解成三个 CNOT;论文统计双比特资源时也使用这一折算。
可能提问:为什么从消元步骤得到的线路要反向读?
参考回答:消元把 U 右乘一串门变成单位矩阵。要重建原来的 U,就要按逆序施加相应的物理逆门。
文章为消元设计了一套系统的消元流程。
第一步主要用 CNOT 和 SWAP 整理左半边的列,使它出现可用的主元。若左上角还凑不出单位块,就说明需要从右半边借列,此时用 H 把同一物理比特对应的 Z、X 列交换,再回去继续处理左半边。
等两个对角块完成,剩下的是左下和右上的“杂项”。左下的对角元素可以靠 S 清理,而不在对角线上的元素成对出现,这是保辛条件带来的结构;一串 H、CNOT、H 可以同时清掉相关的一对。右上角可以用相似的办法处理,最后走到单位矩阵。这里最值得解释的是“为什么不会把已经整理好的部分重新弄乱”:每一步选的都是辛门,它改变的是相互关联的列;不能机械照搬普通高斯消元。投影上的四步只给出主线,极端情况下还需要交换主元和处理边界情形,补充材料给了更细的证明。
可能提问:消元过程中的中间矩阵也必须保持原纠错码吗?
参考回答:不必。每一步要保持的是辛性;整条线路的乘积才满足原码的稳定子与逻辑映射约束。
可能提问:左上角找不到主元时,算法会停住吗?
参考回答:不会。可用 H 把同一物理比特对应的另一半列换进来,再继续寻找主元。
可能提问:S 门为什么能清除某个对角元素?
参考回答:在二进制表示里,S 对对应两列做一次模二列加法,能把该位置的一翻成零,同时保持保辛关系。
先看上排,它把同一个 U 在四个阶段中的形状画了出来,虚线框对应刚才说的列整理、H 换列、清理左下角以及处理右上角。不同颜色或位置的块只是提示哪里还没消完,不需要逐格念矩阵元素。再看下排的量子线路:上方矩阵每发生一次合法的初等列操作,下方就增加一个对应的物理门,因此算法最后交付的不是抽象的存在性证明,而是具体线路。请特别留意图里时间轴朝左,这和我们平时从左到右读电路有些反直觉。原因是上排写的是把 U 一步步消成单位矩阵的过程,真正实现原来 U 时,必须把顺序倒回来并取相应逆门。大家可以拿 H 做一个最简单的自检:H 的逆还是 H,所以单步看不出差别;换成 S 或多门组合,顺序和逆门都不能省略。最后回到本文目标:只要前半段代数求解给了正确的 U,这张流程图就给了从代数对象走向可执行门序列的桥梁。图中并没有解决硬件上哪些物理比特能够直接相连,那部分资源还需按平台拓扑另算。
可能提问:图中的线路是不是已经可以原样放到任意量子芯片上?
参考回答:它是抽象门线路;若芯片连接受限,远距离 CNOT 需要路由或额外 SWAP,实际门数会增加。
可能提问:图中的每一步矩阵变化都能对应量子门吗?
参考回答:能。图中只使用 H、S、CNOT、SWAP 对应的保辛初等操作。
可能提问:上方虚线框与下方线路该怎样对应?
参考回答:上方每做一次列操作,下方就记录对应物理门;最后实现 U 时要把消元顺序倒过来。
现在用环面码看算法到底能做什么。先看右图:方格的边上放物理比特,面和顶点对应两类稳定子。把边界周期性接起来,可以把整个格子想成一个甜甜圈的表面,于是出现两种绕洞而不能缩成一点的闭环。沿这些闭环排出来的 X 链和 Z 链,就是两个逻辑比特的算符代表。码距为 d 时有二 d 平方个物理比特,但始终编码两个逻辑比特;d 等于七时就是九十八个物理比特,待求矩阵 U 的大小是一百九十六乘一百九十六。几何上,给所有物理比特一起做 H 再整理位置,可以交换两类稳定子,往往同时作用于两个逻辑比特。作者在这里故意挑一个更细的任务:只给第一个逻辑比特做 H,第二个保持不动。对目标逻辑行来说,就是第一对 Z 和 X 对调,第二对完全固定。我们前面写的三条方程恰好可以准确表达这件事,不需要先猜一个漂亮的几何变形。后面资源图上的每个点,都是在不同 d 下求解、分解并化简后的线路统计;
对环面码,绕两种方向的非平凡闭环可以平移,却不能靠局部面稳定子把它们彻底缩成空链。逻辑信息正藏在这种全局拓扑性质里,所以“只改变第一对环,第二对保持不变”比看起来更苛刻。
可能提问:逻辑闭环在图上可以平移,为什么目标算符还说“固定”?
参考回答:乘上稳定子后的闭环是同一个逻辑算符的不同代表。本文方程固定选定的代表元,目的是把目标写成明确的矩阵条件。
可能提问:环面码为什么有二 d 平方个物理比特?
参考回答:周期性方格里有 d 平方条水平边和 d 平方条竖直边,每条边放一个物理比特。
可能提问:为什么它始终编码两个逻辑比特?
参考回答:环面有两个独立的非平凡环方向,对应两组不能由局部稳定子消去的逻辑自由度。
右边两张图要分开读。上图画的是物理门数随码距的变化,作者用幂律拟合得到化简前指数约二点五一,化简后约二点二八。这意味着局部 CNOT 规则不只是减少一个固定常数,还让已测试码距范围内的增长趋势变缓。不过别把这两个拟合值读成普适的渐近定理,它们来自有限个 d 的数据点。页面中的二百四十个 CNOT 是论文给双曲码一次稳定子测量使用的比较数字,放在这里作整体量级提示时,不能说它是所有码距环面码都相同的一轮测量开销。下图是给定物理退极化噪声率为十的负四次方时的模拟。总逻辑错误率随 d 增加,因为线路也越来越长;若把它平均到每个物理门,曲线却下降,说明错误率增长得没有门数快。这是对后续容错设计有利的迹象,并非“码距越大这条裸线路就越可靠”。论文也明确没有给出完整容错电路,因此不能从图上直接宣称已经跨过阈值。我们应把这页的结论说准确:找到的线路资源与测量轮次的规模可以比较,噪声模拟支持继续优化,但最终硬件表现还要看错误传播和连接约束。
从误差角度看,这里的模拟给单门和双门使用同一指定退极化参数,只能反映该模型下的趋势。真实平台通常有门种、位置和串扰依赖,尤其要检查一个故障是否沿线路传播成多个物理错误。
可能提问:为什么总逻辑错误率上升还说结果有希望?
参考回答:作者看到的是每门平均错误率下降,表明增长慢于门数;完整容错方案仍须抑制相关错误,不能把这个趋势当成现成的容错证明。
可能提问:拟合指数二点二八是严格的渐近复杂度吗?
参考回答:不是。它来自论文测试的有限码距数据,说明该范围内的增长趋势,不能直接当成最优上界或下界。
可能提问:二百四十个 CNOT 是所有环面码的一轮测量成本吗?
参考回答:不是。这是论文讨论双曲码时采用的一轮稳定子测量参照,不能套到任意码距的环面码上。
逻辑电路中经常连续出现几个 Clifford 门。如果机械地把每一个门单独编译,再把两条物理线路接起来,很可能留下许多可以互相抵消的操作。作者试着直接把逻辑 S 与 H 的复合当成一个目标,在最开始就写好整个逻辑 Pauli 映射,然后只求一张物理辛矩阵,再分解成一条线路。图中的圆点和三角形分别代表整体求解与逐门求解后串联的资源。在测试的环面码距离范围里,整体求解平均少了大约三分之一的门,甚至只比两步方案中单独做 S 的那一步略多。这里的收益不是靠改变逻辑算法,而是因为同一个目标操作可以有很多物理实现,合并求解给算法更大的选择空间。上方的逻辑电路还展示了一个应用:从两个逻辑零态出发,配合所需操作,制备带相位的 Bell 态,也就是零零与一一两项之间带一个 i 的叠加。讲这里可以顺带提醒听众,矩阵相乘顺序和量子线路上读门顺序都要依论文的约定,最好用最终逻辑 X、Z 的像检查,不要只凭记忆判断 S、H 谁先谁后。
如果以后把一段逻辑 Clifford 子电路作为整体编译,同样可以先在逻辑 Pauli 生成元上算出总映射,再交给本文方程。不过子电路越长,找到短线路的优化空间虽更大,求出的具体门数也更依赖编译策略。
可能提问:一步求解为什么一定会更省门吗?
参考回答:并非数学上一定更省。本文这个例子和所用分解、化简流程显示约三分之一的节省;其他码或目标需要重新求解比较。
可能提问:S 和 H 的先后顺序可以互换吗?
参考回答:一般不能。两个门不对易,必须按指定线路计算完整的逻辑 Pauli 映射,再把该映射作为一次求解的目标。
可能提问:制备图中的 Bell 态只靠这个复合门就够了吗?
参考回答:不够。图中还有初态制备和产生两逻辑比特纠缠所需的操作;复合门承担其中的相位与基变换步骤。
第二个例子故意换成比环面码复杂得多的双曲曲面码。它仍把物理比特放在边上,因此面边界构成 Z 型稳定子,顶点附近的边构成 X 型稳定子,和我们熟悉的表面码语言能接上。不同的是,双曲平面的规则多边形铺砌可以满足一除以 r 加一除以 s 小于二分之一,能选到很多欧氏平面铺不出来的局部结构。图里的四五铺砌表示每个面有四条边、每个顶点周围有五个面。把无限铺砌按合适的边界识别成有限闭曲面后,作者得到六十个物理比特,三十个面稳定子和二十四个顶点稳定子。每一类各有一条整体相乘得到恒等的冗余,所以独立稳定子分别是二十九和二十三,合起来五十二条;六十减五十二,留下八个逻辑比特。这个算术比复杂图形更值得现场说一遍。它还说明该码的 Z 型与 X 型检查数不同,不属于便于互换两类稳定子的自对偶情形。既然本文的方程只需要输入两张校验矩阵,是否对称并不是门槛,这就能检验方法是否真的脱离了单一码的几何技巧。
这里的编码率是八除以六十,高于同等大规模下只编码两个逻辑比特的环面码直觉。但编码率与码距之间有取舍,不能单凭这两个整数宣布双曲码全面更优;连接布局和解码难度同样影响实验价值。
可能提问:图上看起来只有有限多个多边形,双曲铺砌为什么说是无限的?
参考回答:无限铺砌是起点;作者通过群的有限商或边界识别得到有限闭曲面码,图画的是这个有限实现的代表区域。
可能提问:为什么 Z 稳定子是四权、X 稳定子是五权?
参考回答:一个面有四条边,所以面边界作用于四个比特;一个顶点邻接五条边,所以顶点星作用于五个比特。
可能提问:八个逻辑比特是否表示这个码一定优于环面码?
参考回答:不能只看编码率。还要比较码距、解码、物理连接和容错门开销。
最后把两个例子的资源放在一起看。右图逐一统计双曲码八个逻辑比特上做 H 或 S 所需的门数,结果随逻辑比特编号变化不大,经过局部化简都有明显下降。这一点挺有意思,因为八个逻辑算符在图上的形状未必一样,但统一的代数求解程序仍能为每个编号单独给出物理线路。作者把这些数和一次稳定子测量约二百四十个 CNOT 比较,认为同属一个量级;请记得真正纠错通常需要多轮测量,所以这只是资源参照,不是完整运行代价。左边表格还回顾了三件事:在环面码上只给一个逻辑比特做 H,门数随 d 的拟合由二点五一下降到二点二八;把连续 S 和 H 合并求解,少约三分之一的门;在非自对偶双曲码上,同一方法也能找 H 与 S。我的总结是,这篇论文把逻辑门设计从个别几何构造变成了可输入、可求解、可输出线路的统一问题。真正通往硬件还需要处理物理连接、容错错误传播与门数最优化,论文在这些方向留下了明确的后续任务。若要看这些结论为何能从方程中得到,后面的附录从 CSS 输入一直追到具体线路核验。
如果把今天的结果压成一句口头总结,就是“先指定逻辑 Pauli 怎么变,再求保持码结构的辛矩阵,最后生成和简化物理线路”。这个顺序给了我们一个能复用的检查框架,也清楚暴露下一阶段需要补的容错环节。
可能提问:表中“与一轮测量同量级”能证明实验上划算吗?
参考回答:不能。它只比较了抽象门数;实际还要加多轮测量、连线布局、路由门、辅助比特和容错电路的代价。
可能提问:八个逻辑比特的门数接近,是严格的对称性结论吗?
参考回答:论文的 Fig. 7 展示了这个具体码上的数值接近;不能据此保证其他双曲码也一样。
可能提问:二百四十个 CNOT 已包含纠错需要的多轮测量吗?
参考回答:没有。它只是一次稳定子测量的参照,完整纠错通常需要多轮。
附录从数据检查开始。正文直接把两张校验矩阵和逻辑行拿来用,这里说清它们怎样才算一套合法输入。先看 H_Z 乘 H_X 转置等于零:一条纯 Z 链和一条纯 X 链的辛内积,正好是它们共同支撑的比特数,模二后为零就是对易,所以"两类稳定子对易"等价于"共同支撑为偶数"。接着是逻辑行:它们要与另一类稳定子对易,并且同编号的逻辑 Z 和逻辑 X 要反对易,写成逻辑 Z 乘逻辑 X 转置等于单位阵。还要提醒一句维数自检:独立稳定子数加逻辑比特数必须等于物理比特数。
第二张卡讲目标端:目标逻辑算符的像同样要满足这套辛配对,否则方程即使有解也不对应 Clifford 操作。后面证明常数块为零时会用到"逻辑 Z 的像仍与全部 X 稳定子对易"这一条。最后要纠正一个旧说法:这些条件不是"先解一遍线性条件、再补上保辛",它们分别被吸收进 C.1 的系数矩阵和 D 的提升线性系统,最终只解一个方程组。
可能提问:为什么 H_Z 乘 H_X 转置一定等于零?
参考回答:一条纯 Z 链与一条纯 X 链的辛内积正好是它们共同支撑的比特数,要求对易就是要求这个数为偶数,模二后正是零。
可能提问:逻辑行需要满足哪些条件?
参考回答:与另一类稳定子对易、同编号的逻辑 Z 与逻辑 X 反对易、不同编号之间对易,并且在相应稳定子的商空间中线性独立。
可能提问:为什么目标算符也要满足辛配对?
参考回答:目标行是逻辑算符的像,像必须仍是合法的逻辑算符;否则线性方程即使有解,也不对应 Clifford 操作。
这页把保辛条件展开到可以数的程度。把 U 按 n 乘 n 分块,再算 U 乘 Lambda 乘 U 转置:左上角出现两类交叉乘积之和,右下角是 X 型的类似结构,交叉块要求等于单位阵。所以实质上是三组独立条件——前两组保证同类像之间的对易,第三组保证两类像之间的辛配对。
数的部分是重点。前两组左端对称,而且在二元域上对角元是两个相同量的乘积之和,恒等于零,所以每组只数严格三角的 n 乘 n 减一除以二条;第三组数全部 n 平方条,加起来正好是 n 乘二 n 减一。这个数字后面会直接变成系数矩阵的行数。但请把它理解为"去重后的条数",不是秩;在稳定子与逻辑行的线性条件下,方程之间还会相关。最后解释为什么不能对某一个分块单独做普通消元:四个块被这些对易关系绑在一起,这正是后面消元顺序要专门设计的原因。
可能提问:为什么保辛条件只算三组方程?
参考回答:四个块方程里,两个交叉块互为转置,提供的是同一条信息,所以只有三组独立条件。
可能提问:n 乘二 n 减一是怎么来的?
参考回答:两组对称方程各去掉自动为零的对角,各得 n(n-1)/2 条;交叉组取全部 n 平方条,合计正好是 n(2n-1)。
可能提问:这些条数就是方程的秩吗?
参考回答:不是。它们只是去掉对称重复后的条数;在码结构与目标映射的线性条件下,方程之间还可能相关。
有了核,就能写出全部线性解的标准形式:一块自由变量乘 H_X 转置,再加上一个特解。上半两块用 H_X 转置,下半两块用 H_Z 转置;自由块的尺寸分别是 n_X 乘 n 与 n_Z 乘 n,特解的构造留到下一页。
第二张卡算变量数:从四 n 平方降到二 n 乘 n 减 k。正文里用的 R、S、T、V 就是这四个自由块,这里把对照关系写清楚;同时统一记号,上标 1 表示自由变量部分,上标 b 表示特解。讲这一页时可以强调,到这一步算法还没碰最难的二次条件,但已经把码的信息全部用上了。
可能提问:自由变量减少了多少?
参考回答:从四 n 平方降到二 n 乘 n 减 k,也就是只留下与独立稳定子数有关的那部分。
可能提问:正文里的 R、S、T、V 对应附录的什么?
参考回答:就是四个自由变量块,依次对应 U 的四个分块的自由部分;上标 1 表示自由部分,上标 b 表示特解。
共用右逆的用处在这里体现出来。把右逆形式代进两个特解块构成的反对称组合,因为两块共用 E_Z,整个括号表达式被夹在 E_Z 与 E_Z 转置之间,结构完全暴露出来。括号里每个元素是两条目标逻辑 Z 的像之间的辛配对;它们由原先互相对易的生成元得到,所以恒等于零。X 半块同理。
结论是提升方程的常数向量只有第三块非零。最后提醒一句:特解依赖主元选择,换一组主元会换 B,也会影响后面稀疏特解是否相容,所以不能把一次成功的选法当成普遍结论。
可能提问:常数块为什么一定为零?
参考回答:括号里每个元素是两条目标逻辑 Z 的像之间的辛配对,由原先互相对易的生成元得到,所以恒等于零。
可能提问:换一组主元会有什么影响?
参考回答:会得到不同的特解,也会影响后面稀疏特解是否相容;一次成功的选法不能被当成普遍结论。
现在回到那条二次的保辛条件。把参数化表达式代进三组方程,展开后每一项可以分成三类:只含自由变量的、自由变量与特解交叉的、以及只含特解的常数项。屏幕上给出第一组方程的一个矩阵元作为例子。
第二张卡是这一页的关键观察:系数里的矩阵元与特解元素全是已知常数,未知量只以一种固定形式出现,就是对 ζ 求和的那个内积;它恰好是矩阵乘积 U_ZX 乘 U_ZZ 转置的第 η ξ 个元素。所以二次性并不散布在 U 的任意两个元素之积上,只集中在极少数几种组合里。这就是可以直接"提升"的依据。
可能提问:为什么不给所有两两乘积都设新变量?
参考回答:代入参数化之后,方程里只出现四种固定的内积组合,只需要四个提升矩阵,总量是 n 减 k 的平方。
可能提问:那个反复出现的内积是什么?
参考回答:就是对 ζ 求和的 u_ZX 乘 u_ZZ,它正是矩阵乘积 U_ZX 乘 U_ZZ 转置的一个元素。
于是把这四种组合整体当成新变量,就是四个提升矩阵:ZX 乘 ZZ 转置、XZ 乘 XX 转置、XZ 乘 ZX 转置、XX 乘 ZZ 转置。它们正好就是正文里那四个 F。
第二张卡写矩阵形式和规模:提升变量是 n 减 k 的平方个,不到线性变量的一半,两者合计 n 减 k 乘三 n 减 k。最后一定要强调,这只是暂借一个名字:线性化把难度拆成了两步,解完之后必须回头验证这些新变量真的等于原来两个矩阵的乘积,否则拿到的是放宽问题的解,不保证保辛。
可能提问:提升变量比线性变量少吗?
参考回答:是。提升变量不到线性变量的一半,所以总的未知量仍在 n 的平方量级。
可能提问:线性化之后还要做什么?
参考回答:必须把提升变量还原成原来两个矩阵的乘积,否则得到的只是放宽方程的解,不保证保辛。
这页把方程整理成一张普通的线性方程组。先把自由矩阵按行转置后纵向拼起来,再把四个提升矩阵也拼进去,八个部分对齐成一个长向量 u;于是所有展开式写成系数矩阵乘 u 等于常数向量,而常数向量的前两块为零,正是上一节证过的结论。
第二张卡给出系数矩阵的块结构:三个方程块对应八个变量块,所以分成三乘八块,其中大量块直接为零,这就是正文说的高度稀疏。特别要看第三行的最后两块完全相同,因为交叉方程里只出现两个交叉提升块的和;这一点后面找核方向与挑稀疏特解都要用。
可能提问:为什么系数矩阵里有大量零块?
参考回答:三个方程块各只涉及部分变量块,所以三乘八的块结构里很多块直接为零,这就是"高度稀疏"。
可能提问:为什么第三行最后两块完全相同?
参考回答:因为交叉方程里只出现两个交叉提升块的和,方程对它们的差完全不敏感。
接着算规模。行数是去重后的二次约束条数,也就是 n 乘二 n 减一;列数是线性变量与提升变量之和,也就是 n 减 k 乘三 n 减 k。拿 d 等于七的环面码当例子:九十八个物理比特、两个逻辑比特,U 是一百九十六阶,系数矩阵已经是一万九千多行、两万八千多列,人工不可算但机器可算。
最后要提醒的是,矩阵边长按 n 平方增长不等于求解代价是 n 平方。论文估计整体复杂度略高于 n 的四次方,实际还受消元填充与主元顺序影响;作为对比,态矢量方法的表示空间是四的 n 次方维。
可能提问:系数矩阵到底多大?
参考回答:行数是 n 乘二 n 减一,列数是 n 减 k 乘三 n 减 k,都是 n 的平方量级,而且高度稀疏。
可能提问:d 等于七的环面码具体是多少?
参考回答:一万九千一百一十行、两万八千零三十二列,已经不是人工能算的表格。
可能提问:矩阵边长是 n 平方量级,求解只要 n 平方吗?
参考回答:不是。论文估计整体复杂度略高于 n 的四次方,实际还受消元填充和主元顺序影响。
后三类利用二元域的特点。第五、六类只改两个提升矩阵的对称部分,因为方程里只出现矩阵加自己的转置;特别要记住对角的那一个不能省略,因为二元域上两个相同项相加为零,对角项在这个组合里完全看不见。第七类同步修改两个交叉提升块,因为系数矩阵第三行的最后两块系数相同,方程只看它们的和。
最后提醒:七类是七种构造模式,不是七个向量,每种可以有很多基向量;要说它们张成整个核,还必须计算系数矩阵的秩,附录没有预设这一点。
可能提问:第五、六类里为什么对角元也要保留?
参考回答:因为二元域上 x 加 x 等于零,对角项在"矩阵加转置"里完全看不见,但它确实属于核。
可能提问:七类方向就一定张成整个核吗?
参考回答:不一定。还需要计算系数矩阵的秩才能断言,附录没有预设这一点。
这一页讲怎么挑出一个"顺手"的特解。补充材料没有随便取一个高斯消元的解,而是专门安排行和变量的顺序:先把交叉方程那组行挪到最前面;各块内部按条带消元,常数向量留在条带里;关键的一步是用只含逻辑算符的那组行,去消同时含逻辑和稳定子的那组行——这一步之所以可行,正是因为两个特解块共用同一个右逆;最后重排并继续消元。
得到行最简形以后,有四个系数块连着零常数项,于是对应变量可以直接取零;两个相同的交叉提升块又说明那两个变量可以任选一个为零。结果是很干净的一组零块,四条乘积关系里前三条自动成立,只剩一条要检查。这里有两点必须讲清:第一,零的是自由变量,不是原矩阵里的整块,原矩阵那两块等于它们的特解,一般并不为零;第二,这个形状依赖特解 B 的选择和受限系统是否相容——我们的核验里 d 等于三的环面码都相容,但也构造出过不相容的小例子,那时就要重选右逆或者改用一般的提升解。
可能提问:为什么要专门安排消元顺序?
参考回答:为了让零常数块和特解结构显出来;随便取一个消元解得不到这么干净的零块形状。
可能提问:稀疏特解里哪些量取零?
参考回答:两个自由块和三个提升块取零,可能非零的只有左上、右下两个自由块和第四个提升块。
可能提问:这个形状总是相容吗?
参考回答:不是。d 等于三环面码的四种目标都相容,但也构造出过不相容的小例子,那时要重选右逆或改用一般提升解。
这一页把前面三节的结论画在一张图上,可以当作小结。左列是长向量 u 的八个块,也就是向量化的顺序;中间七行是七类核方向各自在哪些块、哪些位置上非零——前四类整行非零,第五、六类只有一个元素或对称的一对,第七类同时改两个交叉块;最右侧是稀疏特解,只有左上、右下两个自由块和被提升的那个交叉块可能非零,其余都是零块。
讲这张图时不必逐个色块念,指三处就够了:颜色对应长向量里的哪个块;中间那栏决定了解空间能往哪些方向移动;最右那栏就是“只差一条乘积关系”的那组解。
可能提问:这张图里的颜色表示什么?
参考回答:颜色对应长向量 u 里的八个块:前四块是线性变量,后四块是提升变量。
可能提问:右端那一列为什么这么稀疏?
参考回答:因为消元安排让四个变量块直接取零,只剩两个自由块和一个提升块可能非零,这就是“只剩一条乘积关系要修”的来源。
这是整个代数求解最需要放慢速度的地方。先把需要的满秩性推出来。由码结构的下半组可以知道,H_X 乘右下那个特解块等于 H_X、H_X 乘左下那个特解块等于零;又因为两个特解块的行落在目标像的行空间里,而目标像的 Z 分量与全部 X 稳定子对易,所以它们右乘 H_X 转置都是零。
把交叉那条方程在稀疏特解上左乘 H_X:含 H_Z 转置的项被对易关系消掉,其余常数项被刚才那两条消掉,最后剩下一个很短的等式;两边右乘 H_X 的右逆再转置,就得到自由块乘 H_X 转置等于单位阵。对 d 等于三的环面码核验过,这个矩阵确实就是单位阵。
可能提问:那个单位阵条件是怎么来的?
参考回答:把交叉方程在稀疏特解上左乘 H_X,再右乘 H_X 的右逆并转置,就剩下自由块乘 H_X 转置等于单位阵。
可能提问:这一步为什么必须做?
参考回答:它是后面解出修正系数的钥匙;没有它就无法保证最后一次修正刚好补平失配。
第二页用它来修正。稀疏特解已经把前三条乘积关系做平,只剩最后一条;把两边的差定义成失配,修正方向取第四类核方向,也就是只动右下那个自由块,写成 C 乘 W^X,要求修正之后乘积正好等于被提升的那个矩阵。
取 W^X 就是 H_X 的行,由上一页的单位阵关系立刻读出修正系数 C 就等于失配本身,于是把失配乘 H_X 加到自由块上即可。这个改动属于核方向,所以线性方程仍然成立,其余三组乘积关系也不变;到此才算真正得到保辛的解。最后交代存在性前提:论文假设 Z 型稳定子数不小于 X 型,否则把失配转置后改用第一类核方向;也可以先调整自由块让它行满秩。
可能提问:修正失配为什么一定能做到?
参考回答:单位阵条件说明沿 H_X 所给的那个核方向可以精确补上差额,而且修正量本身就是失配。
可能提问:修正会不会破坏已有的线性方程?
参考回答:不会。修改量本身是一个核方向,线性系统左端不变,其余三条乘积关系也没动。
可能提问:这一步有什么前提?
参考回答:论文假设 Z 型稳定子数不小于 X 型,否则把失配转置后改用第一类核方向;也可先调整自由块让它行满秩。
附录回到物理门。这一页先把四种门的辛矩阵写清楚。行向量顺序固定为 Z 一、Z 二、X 一、X 二,所以单比特门是二阶矩阵:H 交换 Z 与 X,S 给 X 加上一份 Z。
两比特门是四阶矩阵:CNOT 让控制的 X 传播到目标、让目标的 Z 传播到控制;SWAP 在两半里同步交换。n 个比特时,只把这些四阶块放到对应行列,其余位置取单位阵。每一行都可以直接读出一条 Pauli 生成元的像,现场可以用 CNOT 的第二行当检查题。
可能提问:为什么行顺序要固定成 Z 一、Z 二、X 一、X 二?
参考回答:因为辛内积与列操作的读法都依赖这个顺序;顺序一变,CNOT 与 S 的矩阵形式就会跟着变。
可能提问:CNOT 的矩阵怎么读?
参考回答:每一行是一条生成元的像:第二行说明控制的 X 传播到目标,第三行说明目标的 Z 传播到控制,其余保持不变。
这两页给正文四步消元补一个更严格的解释:正文只说了用什么手法,没有说明为什么一定能把矩阵收干净。补充材料的做法是:先用可逆的列操作把左上块化成单位阵,然后由保辛条件、用行和列两个方向的恒等式同时约束剩余块,得到右上与左下必须对称、右下等于单位阵加上左下乘右上。
这样整张矩阵就精确分解成两张更简单的剪切矩阵。也就是说,"能不能消干净"这个问题被化成了"两张剪切矩阵能不能消干净"。
可能提问:左上块可逆时,保辛条件约束了什么?
参考回答:它强制右上与左下对称,并且右下等于单位阵加上左下乘右上,于是整张矩阵分解成两张剪切矩阵。
可能提问:这个分解解决了什么问题?
参考回答:把"能不能把 U 消成单位阵"化成了"两张剪切矩阵能不能消干净",后者有明确、有限的清理手法。
第二页处理剪切矩阵。对称下三角剪切的对角项用单比特 S 清除;离对角线的一对一因为对称性成对出现,可以用一串 H、CNOT、H 一次清掉两个;右上的情况用整体 H 共轭转成同一种问题。所以清理是有章法、必然结束的。
如果一开始左上块不可逆,也不表示失败:先用 H 换入成对列恢复主元,再进入这个可逆情形。最后强调读数规则:由右乘一串初等矩阵得到单位阵,反过来写原矩阵时既要用逆门、也要逆序,S 就是最容易暴露顺序错误的例子。想手算的话,下一页的两比特例子每一步都可以复核。
可能提问:剪切矩阵怎么清理?
参考回答:对角项用单比特 S;离对角线的一对一因对称成对出现,用 H、CNOT、H 一次清掉两个;右上用整体 H 共轭转成同一种问题。
可能提问:如果左上块不可逆呢?
参考回答:先用 H 换入成对列恢复主元,再进入可逆情形,这就是正文四步消元里的第二步。
可能提问:为什么最终线路要逆序读?
参考回答:消元写的是 U 右乘一串初等矩阵等于单位阵;反过来写 U,就要用各门的逆门并逆序排列。
这一页把抽象算法落到补充材料里最小的环面码实例。码距三时,物理比特数是二乘三平方,也就是十八。方格有九个面稳定子和九个顶点稳定子,每一类全部相乘都产生一条整体依赖,所以各取八条独立生成元,剩下两个逻辑比特。左边列出两条代表性稳定子和四条逻辑 Pauli 的支撑编号;这些编号不是用来背的,而是为了把右边的图逐行翻成校验矩阵和逻辑行。
这里的用法是把输入自检真正跑一遍:两类稳定子的共同支撑是否都是偶数、两条逻辑 Z 与两条逻辑 X 的配对是否给出单位阵、独立稳定子数加逻辑比特数是否等于十八。目标只给第一个逻辑比特做 H,所以第一对逻辑行交换角色,第二对和全部选定稳定子保持不动。
可能提问:为什么十八个比特只有八加八个独立稳定子?
参考回答:两类各有九个稳定子,每一类全部相乘产生一条整体依赖,去掉后各剩八个;十八减十六正好等于二。
可能提问:这些支撑编号有什么用?
参考回答:把图上的面、顶点和逻辑链逐行翻成校验矩阵与逻辑行,后面的求解才能真正跑起来。
有了具体输入,就能看一个具体解。补充材料给出的解里,两个交叉块恰好是逻辑行的外积:一个等于第一条逻辑 X 的转置乘它自己,另一个等于第一条逻辑 Z 的转置乘它自己,而左上块等于右下块的转置。这说明解与我们想交换的那对逻辑算符直接相关,不是随机搜出来的一张大表。
接着把门序列重新乘成矩阵,逐项核验三类条件:保辛、选定稳定子行乘 U 后不变、逻辑行乘 U 后恰好在第一个逻辑比特上是 H。门数清点是七十五个 CNOT、五个 SWAP、一个 H,共八十一个物理门;如果把五个 SWAP 各折成三个 CNOT,就是九十个 CNOT 当量,两种口径不能混着说。右侧动画从解出发,按矩阵乘积的逆序逐门消到三十六阶单位阵,每一步都保辛,但中间矩阵不要求每一步都固定原稳定子,只有整段乘积才满足核验条件。八十一不是这个码的最小门数,它只是一条可复查的实例。
可能提问:为什么交叉块是逻辑行的外积?
参考回答:秩一结构说明解与目标逻辑行直接相关,不是随机搜索得到的结果。
可能提问:八十一和九十有什么区别?
参考回答:八十一是门的实际个数;九十是把五个 SWAP 各折算成三个 CNOT 之后的当量数,两种口径不能混用。
可能提问:消元过程的中间矩阵需要固定稳定子吗?
参考回答:不需要。中间矩阵只需保持辛结构,只有整段门序列的总矩阵才要求满足码结构与目标映射。